#ifndef __DKGL_BUFFER_H__
#define __DKGL_BUFFER_H__

namespace DKGL
{
    namespace Buffer
    {

        class BufferInterface
        {
        public:

            virtual void alloc(size_t) = 0;

            virtual void dealloc(void) = 0;

            virtual void* get(void) = 0;
        protected:

            size_t count;
            float* buffer;
        };

        class BufferFloat3 : public BufferInterface
        {
        public:
            BufferFloat3();

            ~BufferFloat3();

            void set(size_t index, float x, float y, float z);

            void alloc(size_t);

            void dealloc();

            void* get(void);

        private:

        };

        class BufferFloat2 : public BufferInterface
        {
        public:
            
            BufferFloat2();

            ~BufferFloat2();

            void set(size_t index, float u, float v);

            void alloc(size_t);

            void dealloc();

            void* get();
        private:
        };
    }
}

#endif